#ifndef PHYSICS_H
#define PHYSICS_H

class Physics{
public:
    Physics();
    ~Physics();

    double x(double t, double xt0, double xt1);
    double x(double t, double xt0, double xt1, double vv);
    double f(double t);
    double g(double t);
    double h(double t);
    double w(double t);
    double velocity(double xt0, double xt2);
    double acceleration(double xt0, double xt1, double xt2);
    void update(double t);
    void restart(double x0, double v0, double deltai);

    double exact(double t, double k);

    double differential(double t);

    double mass;
    double cSpringFactor;
    double kEnvironmentFactor;

    double xPrev;
    double xCurr;
    double diffCurr;
    double v;
    double a;
    double delta;

    int hOption;
    double hA;
    double hOmega;
    double hFi;

    int wOption;
    double wA;
    double wOmega;
    double wFi;

    double innerT;
};

#endif // PHYSICS_H
